// function loadScript(src) {
//     return new Promise((resolve, reject) => {
//         let script = document.createElement('script');
//         script.src = src;
//         script.onload = function () {
//             resolve(src)
//         }
//         script.onerror = function (err) {
//             reject(err)
//         }
//         document.head.append(script)
//     })
// }
// loadScript('./1.js')
//     .then(() => {
//         return loadScript('./2.js')
//     })
//     .then(() => {
//         return loadScript('./4.js')
//     })
//     // 捕获全部错误：
//     .catch(err => {
//         // catch捕获的是改变promise状态为reject的时候
//         console.log(err)
//     })


//并行请求数据接口，聚合数据

const p1 = Promise.resolve(1)

const p2 = Promise.resolve(20)

const p3 = Promise.resolve(3)

Promise.all([p1, p2, p3]).then((value) => {
    console.log(value)
})


// 竞争：
const p4 = () => {
    return new Promise((resolve, reject) => {
        setTimeout(function () {
            // 线路一：
            resolve(1)
        }, 1000)
    })
}

const p5 = () => {
    return new Promise((resolve, reject) => {
        setTimeout(function () {
            resolve(2)
        }, 3000)
    })
}

// 谁先返回就用谁：
Promise.race([p4(), p5()]).then((value) => {
    console.log(value)
})